package br.com.gtacomputadores.control.controller;

import br.com.gtacomputadores.control.converter.ConverterCliente;
import br.com.gtacomputadores.control.dao.AgendaDAO;
import br.com.gtacomputadores.control.dao.AgendaDAOHibernate;
import br.com.gtacomputadores.control.model.Agenda;
import br.com.gtacomputadores.control.model.Cliente;
import br.com.gtacomputadores.control.model.Usuario;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

/**
 *
 * @author Jeandro
 */
@ManagedBean(name = "agendaBean")
@RequestScoped
public class AgendaController implements Serializable {

    private Agenda agenda = new Agenda();
    private DataModel listaAgendas;
    private String keySeach;

    private ConverterCliente converterCliente;


    public ConverterCliente getConverterCliente() {
        return converterCliente;
    }

    public void setConverterCliente(ConverterCliente converterCliente) {
        this.converterCliente = converterCliente;
    }
    


    
   public String getKeySeach() {
        return keySeach;
    }

    public void setKeySeach(String keySeach) {
        this.keySeach = keySeach;
    }

    /**
     * Creates a new instance of ClienteController
     */
    public AgendaController() {

converterCliente = new ConverterCliente();
    }

    public DataModel getListarAgendas() {
        List<Agenda> lista = new AgendaDAOHibernate().list();
        listaAgendas = new ListDataModel(lista);
        return listaAgendas;
    }

    public Agenda getAgenda() {
        return this.agenda;
    }

    public void setAgenda(Agenda agenda) {
        this.agenda = agenda;
    }

    public String prepararAdicionarAgenda() {
        agenda = new Agenda();
        return "agenda";
    }

    public String prepararAlterarAgenda() {
        agenda = (Agenda) (listaAgendas.getRowData());
        return "agenda";
    }

    public String excluirAgenda() {
        Agenda agendaTemp = (Agenda) (listaAgendas.getRowData());
        AgendaDAO dao = new AgendaDAOHibernate();
        dao.remove(agendaTemp);
        prepararAdicionarAgenda();
        return "agenda";
    }

    public String adicionarAgenda() {
        AgendaDAO dao = new AgendaDAOHibernate();
        Integer codigo = agenda.getCodigo();
        if (codigo == null || codigo == 0) {
            dao.save(agenda);
            prepararAdicionarAgenda();
        } else {
            dao.update(agenda);
        }

        return "agenda";
    }

    public String alterarAgenda() {
        AgendaDAO dao = new AgendaDAOHibernate();
        dao.update(agenda);
        return "agenda";
    }
   
        
        
        
}
